package array;

import java.util.Arrays;

public class ArraySorting {
    public static void main(String[] args) {
        // 1. 基本类型数组排序
        int[] numbers = {5, 2, 8, 1, 9, 3};
        System.out.println("排序前: " + Arrays.toString(numbers));

        Arrays.sort(numbers); // 升序排序
        System.out.println("排序后: " + Arrays.toString(numbers));

        // 2. 对象数组排序（String实现了Comparable接口）
        String[] names = {"Bob", "Alice", "David", "Charlie"};
        System.out.println("\n字符串排序前: " + Arrays.toString(names));

        Arrays.sort(names); // 按字母顺序排序
        System.out.println("字符串排序后: " + Arrays.toString(names));

        // 3. 自定义排序（降序排序）
        Integer[] nums = {5, 2, 8, 1, 9, 3};
        Arrays.sort(nums, (a, b) -> b - a); // 使用Lambda表达式实现降序
        System.out.println("\n降序排序: " + Arrays.toString(nums));

        // 4. 部分排序（从索引1到4，不包括4）
        int[] partial = {5, 2, 8, 1, 9, 3};
        Arrays.sort(partial, 1, 4);
        System.out.println("部分排序: " + Arrays.toString(partial));
    }
}
